#ifndef __COLOR_H__
#define __COLOR_H__

#include "ref.h"

#define TRANSPARENT 0
#define BLACK 0xFF000000
#define WHITE 0xFFFFFFFF
#define RED 0xFFFF0000
#define GREEN 0xFF00FF00
#define BLUE 0xFF0000FF
#define YELLOW 0xFFFFFF00
#define CYAN 0xFF00FFFF
#define MAGENTA 0xFFFF00FF
#define LIGHT_GERY 0xFFD3D3D3

typedef uint32_t ColorInt;

typedef struct {
    uint8_t blue;
    uint8_t green;
    uint8_t red;
} RGB;

typedef struct {
    uint8_t blue;
    uint8_t green;
    uint8_t red;
    uint8_t alpha;
} Color;

ColorInt Color_RGB(uint8_t red, uint8_t green, uint8_t blue);
ColorInt Color_ARGB(uint8_t alpha, uint8_t red, uint8_t green, uint8_t blue);
ColorInt Color_ARGB2(Color *color);

Color Color_Parse(ColorInt color);

ColorInt Color_Random();

#endif /* __COLOR_H__ */
